Self-composable Programming

نویسنده

  • Hiun Heinai
چکیده

Increasing scale and complexity of modern software, we have found programming problem with techniques like Aspect-oriented Programming(AOP) while constructing features of the software. We capture its key property as behavioral similarity, a set of tangled and scattered low-level behavior in similar patterns of invocation across the high-level behaviors features in software. In this paper, we present Self-composable Programming(Self), a way of programming for constructing reusable software patterns. Self treated pattern as a behavior and introduces a concept of abstract and specific behavior by bringing hierarchical relationship. Self introduces two attribute Self-composability to refining abstract behavior into specific behavior and Multi-level inheritance to localising cross-cutting concerns by parental abstract behavior. Self provides these attribute in a direct semantical way which is a contrast to previous research of inheritance in AOP. We design Self by following well establishes idioms of Object-oriented Programming, Abstraction Layer and UNIX Philosophy. We extract a concept from the philosophy and applies to the concrete language-specific environment to build an implementation and API specification. We evaluated Self in the context of a web application by measuring and estimating required SLOC for implementing a new feature, and we experienced positive result of applying Self over AOP to increase the modularity of software. Self also increases overall organisational and architectural abstraction in programmer’s point of view by enabling power to define an operational dimension of software. Self provides both practical and theoretical improvements of modular software engineering. It is practical programming technique to resolves scattering and tangling of similar patterns in software, while also addresses the programming benefits from the right way of modeling a behavior in the real world. We think accurately modeling and simplifying control of behavior is key to open new abstraction in software just like Object-oriented Programming did for things in 50 years ago. ACM CCS 2012 Software and its engineering→ Abstraction, modeling and modularity; Language features; Very high level languages; Design patterns; Applied computing → Enterprise architectures;

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Monads and Composable Continuations

Moggi’s use of monads to factor semantics is used to model the composable continuations of Danvy and Filinski. This yields some insights into the type systems proposed by Murthy and by Danvy and Filinski. Interestingly, modelling some aspects of composable continuations requires a structure that is almost, but not quite, a monad.

متن کامل

Universally Composable Secure Mobile Agent Computation

We study the security challenges faced by the mobile agent paradigm, where code travels and performs computations on remote hosts in an autonomous manner. We define universally composable security for mobile agent computation that is geared toward a complex networking environment where arbitrary protocol instances may be executing concurrently. Our definition provides security for all the parti...

متن کامل

Compositional Choreographies

We propose a new programming model that supports a compositionality of choreographies. The key of our approach is the introduction of partial choreographies, which can mix global descriptions with communications among external peers. We prove that if two choreographies are composable, then the endpoints independently generated from each choreography are also composable, preserving their typabil...

متن کامل

Declarative, composable views

Widespread use of HTML [W3Cb], JavaScript, and the DOM [W3Ca] has led to sub-optimal ‘best practices’. We apply the bidirectional programming formalism of lenses [FGM05] to define user interfaces in JavaScript that are declarative, composable, clear, and concise — in half the code. Additionally, we define two new bidirectional combinator over lists, order and list map.

متن کامل

Managing variability of self-customizable systems through composable components

Self-customizable systems must adapt themselves to evolving user requirements or to their changing environment. One way to address this problem is through automatic component composition, systematically (re-)building systems according to the current requirements by composing reusable components. Our work addresses requirements-driven composition of multi-flow architectures. This article present...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:
  • CoRR

دوره abs/1612.02547  شماره 

صفحات  -

تاریخ انتشار 2016